package ventana;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.windows.WindowOwner;

import ar.edu.utn.frba.dds.aterrizar.ErrorEnLogicaDeAsientosException;
import ar.edu.utn.frba.dds.aterrizar.Reserva;
import ar.edu.utn.frba.dds.aterrizar.busquedas.Vuelo;
import ar.edu.utn.frba.dds.aterrizar.usuarios.Usuario;

public class DialogReservaFallida extends ErrorDialog {
	
	private Vuelo vuelo;
	private Usuario usuario;

	public DialogReservaFallida(WindowOwner owner, Vuelo vuelo, Usuario usuario) {
		super(owner);
		this.setWarningMessage("Error al efectuar la reserva:\n" +
			"El asiento " + vuelo.getCodigoDeVuelo() + "-" + vuelo.getCodigoDeAsiento() + " ya esta reservado.\n" +
			"¿Que desea hacer?");
		setVuelo(vuelo);
		setUsuario(usuario);
	}
	
	public void setVuelo(Vuelo vuelo) {
		this.vuelo = vuelo;
	}
	
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
    @Override
    protected void addActions(Panel panel) {
    	super.addActions(panel);
    	
    	new Button(panel).
    	setCaption("Sobrereservar").
    	onClick(new MessageSend(this, "sobrereservar"));
    }
    
	public void sobrereservar() {
		Reserva reserva = new Reserva();
		java.util.Date utilDate = new java.util.Date();
		java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
		try {
			reserva.SobreReserva(vuelo, usuario, sqlDate);
		} catch (ErrorEnLogicaDeAsientosException e) {
			this.close();
			new DialogSobreReservaFallida(this, vuelo).open();
		}
		this.close();
	}

}
